package scanner;

import exceptions.LexicalException;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/**
 * 词法分析器工厂，供外界构造词法分析器
 */
public interface ScannerFactory {
    /**
     * 根据指定文件名构造词法分析器
     *
     * @param fileName 指定文件名
     * @return 构造的词法分析器
     * @throws FileNotFoundException 文件路径有错
     */
    public static MyScanner makeScanner(String fileName) throws FileNotFoundException {
        return new OberonScanner(new FileReader(fileName));
    }
}
